TODO: 
Read from item instead of slot usability table.
Hide "(<)(V)(>) to Equip" text when on a blank slot.


15E660
003E978C slot usability table
003E97B4 item usability table
802229E0: Current Cursor Color Type

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Cursor Movement:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803D8B88 ;LEFT
	NOP
.org 0x803D8C68 ;RIGHT
	NOP
.org 0x803D8DD0 ;FROM L
	NOP
	NOP
.org 0x803D8EA8 ;FROM R
	NOP
	NOP
.org 0x803D8FAC ;UP
	NOP
.org 0x803D9004 ;DOWN
	NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Hide Item 0xFF name (on select)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803E2168
	LHU		A1, 0x023C(V0)			;
	LHU		V1, 0x002A(SP)			;Already there
	SLTI	AT, A1, 0x00FF			;
	BEQL	AT, R0, 0x803E2338
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Hide Item 0xFF name (loop)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803E1370
	SLTI	AT, T7, 0x00FF			;Set AT to 1 if you don't have item 0xFF or a blank slot selected
.org 0x803E1378
	BEQL	AT, R0, 0x803E17E8		;Branch if you have item 0xFF or a blank slot selected
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Set Cursor to Default on 0xFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803D9058
	SLTI	T5, A0, 0x00FF			;T5 = 1 if you have selected an item
	SLL		T5, T5, 0x0002			;T5 = T5<<0x2
	NOP								;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Make Item 0xFF unequippable (2.0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803D9140
	ADDIU	AT, R0, 0x00FF			;AT = 0xFF (Blank)
	LW		T6, 0x0048(SP)			;T6 = Item ID
	BEQ		AT, T6, 0x803D92FC		;Branch past error sound if item is 0xFF (Blank)
	ADDIU	AT, R0, 0x0009			;AT = 0x0009 (Usable by both)
	BEQ		V0, AT, _equipEnd		;Branch if usable by child and adult
	LW		T5, 0x0004(S4)			;T5 = Age
	BNE		V0, T5, 0x803D92D0		;Branch to error sound if wrong age
	_equipEnd:
	NOP								;Remove command
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Hide text when on empty slot
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803E1B80
	LHU		V0, 0x023E(T0)			;V0 = Selected Item ID
	SLTI	V0, V0, 0x00FF			;V0 = 1 if Selected Item ID is less than 0xFF
	BEQ		V0, R0, 0x803E1D0C		;Branch if item ID is 0xFF or higher
	;Optimized code below
	LBU		T6, 0x1409(T2)
	LUI		T7, 0x8016
	LW		T9, 0xFA90(T7)
	SLL		T8, T6, 0x1
	ADDU	V0, T9, T8
	LW		T9, 0x0154(T0)
	LH		V0, 0x0DF6(V0)
	SH		V0, 0x0120(T9)
	LUI		A1, 0x803F
	ADDIU	T3, A1, 0x9968
	
;CODE ENDS HERE;
;CODE ENDS HERE;
;CODE ENDS HERE;
;CODE ENDS HERE;

;Unoptimized Code:
.org 0x803E1B80
	LBU		T6, 0x1409(T2)
	LUI		T9, 0x8016
	LW		T9, 0xFA90(T9)
	SLL		T8, T6, 0x1
	LW		T6, 0x0154(T0)
	ADDU	T7, T9, T8
	LH		V0, 0x0DF6(T7)
	LUI		T7, 0x8016
	LUI		T3, 0x803F
	SH		V0, 0x0120(T6)
	LW		T9, 0x0154(T0)
	ADDIU	T3, T3, 0x9968
	LUI		A1, 0x803F
	
;OLD CODE BELOW!;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Hide text when on empty slot
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803E1B78
	BEQ		R0, R0, 0x803E1D0C
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Make Item 0xFF unequippable
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803D914C
	ADDIU	AT, R0, 0x00FF			;Makes Blank unequippable instead of SOLD OUT.
.org 0x803D9158
	ADDIU	AT, R0, 0x00FF			;Makes Blank unequippable instead of SOLD OUT.
	BEQ		T6, AT, 0x803D92FC		;Change branch to jump past error sound for blank slots
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Make Item 0xFF unequippable (2.0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.org 0x803D9140
	ADDIU	AT, R0, 0x0009			;AT = 0x0009 (Usable by both)
	LW		T6, 0x0048(SP)			;T6 = Item ID
	BEQL	V0, AT, 0x803D915C		;Branch if usable by child and adult
	ADDIU	AT, R0, 0x00FF			;AT = 0xFF (Blank)
	LW		T5, 0x0004(S4)			;T5 = Age
	BNE		V0, T5, 0x803D92D0		;Branch to error sound if wrong age
	ADDIU	AT, R0, 0x00FF			;AT = 0xFF (Blank)
	_checkBlank:
	BEQ		AT, T6, 0x803D92FC		;Branch past error sound if item is 0xFF (Blank)
	
Deku Sticks
Deku Nuts
Bombs
Bow
Boomerang
Hookshot
Hover Boots
Fire Arrow
Bottle
Bottle
Bottle
Bottle
World Transport (No Name Yet)
Escape Rope
Quest Item